package models

import (
	"time"
)

// OrderComplaint 订单投诉表
type OrderComplaint struct {
	ID                 uint64     `gorm:"primaryKey;autoIncrement;comment:主键ID" json:"id"`
	ComplaintNo        string     `gorm:"type:varchar(32);uniqueIndex;not null;comment:投诉编号" json:"complaint_no"`
	OrderID            uint64     `gorm:"not null;index;comment:订单ID" json:"order_id"`
	ComplainantID      string     `gorm:"type:varchar(64);not null;index;comment:投诉人ID" json:"complainant_id"`
	RespondentID       string     `gorm:"type:varchar(64);not null;index;comment:被投诉人ID" json:"respondent_id"`
	ComplaintType      int8       `gorm:"type:tinyint;not null;index;comment:投诉类型(1-房源问题,2-服务问题,3-支付问题,4-合同问题,5-其他)" json:"complaint_type"`
	ComplaintLevel     int8       `gorm:"type:tinyint;default:1;comment:投诉级别(1-一般,2-重要,3-紧急)" json:"complaint_level"`
	Title              string     `gorm:"type:varchar(200);not null;comment:投诉标题" json:"title"`
	Content            string     `gorm:"type:text;not null;comment:投诉内容" json:"content"`
	Evidence           string     `gorm:"type:json;comment:投诉凭证" json:"evidence"`
	Status             int8       `gorm:"type:tinyint;default:0;index;comment:处理状态(0-待处理,1-处理中,2-已处理,3-已关闭,4-已撤销)" json:"status"`
	Priority           int8       `gorm:"type:tinyint;default:1;index;comment:优先级(1-低,2-中,3-高,4-紧急)" json:"priority"`
	HandlerID          string     `gorm:"type:varchar(64);index;comment:处理人ID" json:"handler_id"`
	HandleResult       string     `gorm:"type:text;comment:处理结果" json:"handle_result"`
	HandleTime         *time.Time `gorm:"type:timestamp;comment:处理时间" json:"handle_time"`
	SatisfactionRating int8       `gorm:"type:tinyint;comment:满意度评分(1-5星)" json:"satisfaction_rating"`
	CreatedAt          time.Time  `gorm:"autoCreateTime;index;comment:创建时间" json:"created_at"`
	UpdatedAt          time.Time  `gorm:"autoUpdateTime;comment:更新时间" json:"updated_at"`
}
